// Generator 函数

// function * foo () {
//     console.log('zce');
//     return 100
// }

// // 返回生成器对象
// const result = foo()
// // 使用next 执行函数体
// console.log(result.next());


function * foo () {
    console.log('111');
    yield 100
    console.log('222');
    yield 200
    console.log('333');
    yield 200
}

const generator = foo()
// yield 100后未执行
console.log(generator.next());
// yield 200后未执行
console.log(generator.next());
// yield 300后未执行
console.log(generator.next());

// 生成器函数会自动返回一个生成器对象，调用该对象的next方法才会开始执行函数体，执行过程中遇到yield关键词 则会暂停执行 且yield后的值会作为结果返回 在继续调用next 则从yield暂停之处继续往下执行  直到函数体执行完毕
// 最大的特点： 惰性执行 